package com.open.capacity.reimburse.service;

import com.open.capacity.reimburse.entity.SysInvoice;

import com.open.capacity.commons.PageResult;

import java.util.Map;
import java.util.List;

/**
 * 发票
 *
 * @author
 * @email
 * @date 2021-03-05 07:24:19
 */
public interface SysInvoiceService {

    /**
     * 开始电子发票ocr识别
     */
    int startOCR();

    /**
     * 开始PDF识别
     */
    int startPDF();

    /**
     * 添加
     *
     * @param sysInvoice
     */
    int save(SysInvoice sysInvoice);

    /**
     * 修改
     *
     * @param sysInvoice
     */
    int update(SysInvoice sysInvoice);


    /**
     * 检查是否存在发票重复报销
     */
    int duplicateCheck();

    /**
     * 删除
     *
     * @param id
     */
    int delete(String id);

    /**
     * 清理没有流程号的发票
     * @return
     */
    int clearNoProcess();


    /**
     * 查询记录
     *
     * @param id
     * @return
     */
    SysInvoice findById(String id);

    /**
     * 分页
     *
     * @param params
     * @return
     */
    PageResult<SysInvoice> pageAll(Map<String, Object> params);

    /**
     * 列表
     *
     * @param params
     * @return
     */
    List<SysInvoice> findAll(Map<String, Object> params);
}

